package com.hsgene.order.service;

import com.hsgene.common.util.result.ApiResult;
import com.hsgene.common.util.result.NullObject;
import com.hsgene.common.util.support.Pagination;
import com.hsgene.logistics.domain.LogisticsInfo;
import com.hsgene.order.condition.OrderSupplierCondition;
import com.hsgene.order.constants.SuppliOrConsoleType;
import com.hsgene.order.domain.OrderSupplier;
import com.hsgene.order.dto.OrderSupplierDto;
import com.hsgene.order.dto.OrderSupplierInvoiceDto;

/**
 * 机构订单Service
 *
 * @author wangbing
 * @version 1.0, 2018/8/3
 */
public interface OrderSupplierService {
    /**
     * 机构订单列表
     *
     * @param condition
     * @param console
     * @return
     */
    ApiResult<Pagination<OrderSupplierDto>> queryOrderSupplier(OrderSupplierCondition condition, SuppliOrConsoleType console);

    /**
     * 根据子订单id查询信息
     *
     * @param id
     * @param console
     * @return
     */
    ApiResult<OrderSupplierDto> getById(String id, SuppliOrConsoleType console);

    /**
     * 更新订单状态（确认收货）
     *
     * @param id
     * @return
     */
    ApiResult<NullObject> updateStatus(String id, String type);

    /**
     * 机构添加发票
     *
     * @param orderSupplierInvoiceDto
     * @return
     */
    ApiResult<NullObject> insertInvoice(OrderSupplierInvoiceDto orderSupplierInvoiceDto);

    /**
     * 查看发票
     *
     * @param ids
     * @return
     */
    ApiResult<OrderSupplierInvoiceDto> getInvoice(String ids);

    /**
     * 插入发票检验
     *
     * @param ids
     * @return
     */
    ApiResult getInvoices(String ids);

    /**
     * 寄送快递
     *
     * @param logisticsInfo
     * @return
     */
    ApiResult insertSample(LogisticsInfo logisticsInfo);

    /**
     * 更新报告单信息
     *
     * @param orderSupplier
     * @return
     */
    ApiResult<NullObject> updateReportSupplie(OrderSupplier orderSupplier);
}
